Dynamic scripting languages are presently a preferred development platform in computer programming and software development. In particular, JavaScript® is the main development language for web pages and web applications on the client side, while Python and Ruby are very popular languages for software development on the server side. Such programming languages are designed for interactive execution (scripting), and are thus, by necessity, dynamic (i.e., support dynamic types, reflection and introspection, and extensibility). Dynamic scripting languages typically execute via interpretation, in which, at runtime, the scripts are parsed and analyzed before they are executed.
Recently, just-in-time compilation has been introduced for a number of these languages, such as JavaScript, to address performance issues of dynamic languages. However, performance problems persist. This is particularly the case in constrained computing environments, such as a mobile device, where the performance and power efficiency of executing dynamic languages continue to be issues.